package org.song.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 获取分布式锁注解，保证在分布式系统架构中集群服务器中的方法在任何时间段只能有一个进程一个线程执行来保证在分布式系统架构中的共享资源的安全性可见性
 *  本项目分布式锁基于redis实现保证分布式锁的效率问题，不使用redission redisssion其实底层加锁释放锁原理也是setnx+expire+delete + lua脚本
 */

@Target(value = {ElementType.METHOD})   //分布式锁注解元注解设置为方法
@Retention(RetentionPolicy.RUNTIME) // 可被反射机制读取到注解
public @interface GetDistributedLock {
}
